home *** CD-ROM | disk | FTP | other *** search
- unit uOrganizeFavs;
-
- {
- *******************************************************************************
- * Descriptions: Organize Favorites
- * $Source: /cvsroot/fma/fma/uOrganizeFavs.pas,v $
- * $Locker: $
- *
- * Todo:
- *
- * Change Log:
- * $Log: uOrganizeFavs.pas,v $
- * Revision 1.3.8.2 2005/01/27 09:57:10 z_stoichev
- * Fixed: Organize Favorites GUI on remove item.
- *
- * Revision 1.3.8.1 2005/01/25 16:03:20 z_stoichev
- * Merged with 2.1 Beta 1 bugfixes
- *
- * Revision 1.3 2004/06/29 11:51:15 z_stoichev
- * Added Select One Contact support
- *
- * Revision 1.2 2004/06/24 08:38:19 z_stoichev
- * Add Remove confirmation
- *
- * Revision 1.1 2004/05/20 06:38:25 z_stoichev
- * Initial checkin.
- *
- *
- }
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, ExtCtrls, StdCtrls, ComCtrls, Menus, TntStdCtrls, TntComCtrls;
-
- type
- TfrmOrganizeFavs = class(TForm)
- TreeView1: TTntTreeView;
- lblDetails: TTntLabel;
- Label1: TLabel;
- btnAdd: TButton;
- btnRemove: TButton;
- btnUp: TButton;
- btnDown: TButton;
- Panel1: TPanel;
- btnOk: TButton;
- btnCancel: TButton;
- PopupMenu1: TPopupMenu;
- Edit1: TMenuItem;
- N1: TMenuItem;
- Delete1: TMenuItem;
- procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
- procedure btnRemoveClick(Sender: TObject);
- procedure btnUpDownClick(Sender: TObject);
- procedure btnAddClick(Sender: TObject);
- procedure PopupMenu1Popup(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- FFavsType: string;
- FMultiSel: boolean;
- function Get_Favs: TStringList;
- procedure Set_Favs(const Value: TStringList);
- procedure Set_FavType(const Value: string);
- { Private declarations }
- public
- { Public declarations }
- property FavsType: string read FFavsType write Set_FavType;
- property FavsList: TStringList read Get_Favs write Set_Favs;
- property MultiSel: boolean read FMultiSel write FMultiSel;
- end;
-
- var
- frmOrganizeFavs: TfrmOrganizeFavs;
-
- implementation
-
- uses Unit1, uSelectContact, uGetContact;
-
- {$R *.dfm}
-
- { TfrmOrganizeFavs }
-
- function TfrmOrganizeFavs.Get_Favs: TStringList;
- var
- sl: TStringList;
- i: integer;
- begin
- sl := TStringList.Create;
- try
- for i := 0 to TreeView1.Items.Count-1 do
- sl.Add(TreeView1.Items[i].Text);
- except
- FreeAndNil(sl);
- end;
- Result := sl;
- end;
-
- procedure TfrmOrganizeFavs.Set_Favs(const Value: TStringList);
- var
- i: integer;
- begin
- TreeView1.Items.BeginUpdate;
- try
- TreeView1.Items.Clear;
- for i := 0 to Value.Count-1 do
- with TreeView1.Items.Add(nil,Value[i]) do begin
- ImageIndex := 26;
- SelectedIndex := 25;
- end;
- finally
- TreeView1.Items.EndUpdate;
- end;
- end;
-
- procedure TfrmOrganizeFavs.TreeView1Change(Sender: TObject;
- Node: TTreeNode);
- begin
- if Assigned(Node) then
- lblDetails.Caption := StringReplace(Node.Text,'; ',#13#10,[rfReplaceAll])
- else
- lblDetails.Caption := '';
- lblDetails.Hint := lblDetails.Caption;
- btnRemove.Enabled := TreeView1.Selected <> nil;
- btnUp.Enabled := btnRemove.Enabled and (TreeView1.Selected.Index > 0);
- btnDown.Enabled := btnRemove.Enabled and (TreeView1.Selected.Index < TreeView1.Items.Count-1);
- end;
-
- procedure TfrmOrganizeFavs.btnRemoveClick(Sender: TObject);
- begin
- if MessageDlg('Current favorite item will be removed from list. Do you wish to continue?',
- mtConfirmation,[mbYes,mbNo],0) = ID_YES then begin
- TreeView1.Selected.Delete;
- TreeView1Change(TreeView1,TreeView1.Selected);
- end;
- end;
-
- procedure TfrmOrganizeFavs.btnUpDownClick(Sender: TObject);
- var
- Node: TTntTreeNode;
- s: string;
- begin
- Node := TreeView1.Items[TreeView1.Selected.Index + (Sender as TButton).Tag];
- s := Node.Text;
- Node.Text := TreeView1.Selected.Text;
- TreeView1.Selected.Text := s;
- TreeView1.Selected := Node;
- end;
-
- procedure TfrmOrganizeFavs.btnAddClick(Sender: TObject);
- var
- Dlg: TfrmSelContact;
- begin
- if FMultiSel then
- Dlg := TfrmSelContact.Create(nil)
- else
- Dlg := TfrmGetContact.Create(nil);
- with Dlg do
- try
- if (Sender <> btnAdd) and (TreeView1.Selected <> nil) then
- SelContacts := TreeView1.Selected.Text
- else
- SelContacts := '';
- if ShowModal = mrOk then
- if SelContacts <> '' then
- if (Sender = btnAdd) or (TreeView1.Selected = nil) then
- with TreeView1.Items.Add(nil,SelContacts) do begin
- ImageIndex := 26;
- SelectedIndex := 25;
- Selected := True;
- Focused := True;
- end
- else begin
- TreeView1.Selected.Text := SelContacts;
- TreeView1Change(TreeView1,TreeView1.Selected);
- end
- else
- if (Sender <> btnAdd) and (TreeView1.Selected <> nil) then
- TreeView1.Selected.Delete;
- finally
- Free;
- end;
- end;
-
- procedure TfrmOrganizeFavs.PopupMenu1Popup(Sender: TObject);
- begin
- Edit1.Enabled := TreeView1.Selected <> nil;
- Delete1.Enabled := Edit1.Enabled;
- end;
-
- procedure TfrmOrganizeFavs.Set_FavType(const Value: string);
- begin
- FFavsType := Value;
- Edit1.Caption := 'Edit...';
- Caption := 'Organize Favorites';
- if Value <> '' then begin
- Caption := Format('%s - [%s]',[Caption,Value]);
- Edit1.Caption := Format('Edit %s',[Value]);
- end;
- end;
-
- procedure TfrmOrganizeFavs.FormCreate(Sender: TObject);
- begin
- {$IFNDEF VER150}
- Form1.ThemeManager1.CollectForms(Self);
- {$ENDIF}
- FMultiSel := True;
- end;
-
- end.
-